Continuous Integration (CI) এবং Continuous Deployment (CD) হল সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ, যা কোডের নিয়মিত ইনটিগ্রেশন এবং ডিপ্লয়মেন্ট প্রক্রিয়া সহজ করে। GitHub Actions, Travis CI, এবং Bitrise তিনটি জনপ্রিয় CI/CD প্ল্যাটফর্ম যা অ্যাপ ডেভেলপমেন্টের গতি বাড়াতে সহায়তা করে। এখানে, আমরা GitHub Actions, Travis CI, এবং Bitrise সেটআপ এবং কনফিগারেশন নিয়ে আলোচনা করবো।
১. GitHub Actions Setup
GitHub Actions হল একটি CI/CD সিস্টেম যা GitHub রিপোজিটরির মধ্যে সরাসরি ইনটিগ্রেটেড। এটি কোড কমিট, পুল রিকোয়েস্ট এবং অন্যান্য ইভেন্টের ভিত্তিতে অটোমেটিক ডিপ্লয়মেন্ট এবং টেস্টিং প্রক্রিয়া চালাতে পারে।
১.১ GitHub Actions Workflow Setup
- আপনার GitHub রিপোজিটরিতে একটি
.github/workflows/ডিরেক্টরি তৈরি করুন। - সেখানে একটি YAML ফাইল (যেমন
ci.yml) তৈরি করুন এবং আপনার CI প্রক্রিয়া সেটআপ করুন।
name: Ionic Build & Test
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install Dependencies
run: npm install
- name: Run Tests
run: npm run test -- --watch=false --browsers=ChromeHeadless
continue-on-error: true # Fail the job if the tests fail
- name: Build the App
run: npm run build
- name: Deploy to Firebase
run: firebase deploy --token ${{ secrets.FIREBASE_AUTH_TOKEN }}
if: github.ref == 'refs/heads/main'
এখানে:
- on: ওয়েবহুক ট্রিগার সেট করা হচ্ছে, যেমন
pushএবংpull_request। - jobs: যেকোনো কাজ (যেমন Build, Test) করা হবে।
- steps: কোড চেকআউট, নোড সেটআপ, ডিপেন্ডেন্সি ইনস্টল, টেস্ট রান, এবং ডিপ্লয়মেন্ট স্টেপ যুক্ত করা হয়েছে।
১.২ Secrets Configuration
- Firebase বা অন্যান্য সিকিউর ডিপ্লয়মেন্ট টুলসের জন্য secrets সেট করা হয়। GitHub রিপোজিটরির
Settings>Secretsএ গিয়েFIREBASE_AUTH_TOKENঅথবা অন্যান্য সিকিউর ভ্যালু সেট করা হয়।
২. Travis CI Setup
Travis CI একটি ওপেন সোর্স CI/CD প্ল্যাটফর্ম যা GitHub রিপোজিটরির সাথে ইন্টিগ্রেটেড হয়ে টেস্টিং, বিল্ডিং, এবং ডিপ্লয়মেন্ট প্রক্রিয়া স্বয়ংক্রিয়ভাবে চালায়।
২.১ Travis CI Setup
- Travis CI অ্যাকাউন্ট তৈরি করুন এবং আপনার GitHub রিপোজিটরি সংযুক্ত করুন।
- আপনার রিপোজিটরির মূল ডিরেক্টরিতে
.travis.ymlফাইল তৈরি করুন।
language: node_js
node_js:
- "14"
script:
- npm install
- npm run lint
- npm test
deploy:
provider: firebase
token:
secure: "your-firebase-token-here"
skip_cleanup: true
on:
branch: main
এখানে:
- language: ব্যবহার করা ভাষা (Node.js)
- node_js: Node.js এর সংস্করণ
- script:
npm install,npm run lint, এবংnpm testরান করার জন্য কমান্ড। - deploy: Firebase ডিপ্লয়মেন্ট কনফিগারেশন, যেখানে সিকিউর টোকেন ব্যবহার করা হয়।
২.২ Firebase Token Setup
Travis CI এর ডিপ্লয়মেন্টের জন্য Firebase Token প্রয়োজন। আপনি এই টোকেনটি travis ফাইলের মাধ্যমে নিরাপদভাবে প্রদান করতে পারেন। secure ফিল্ডে এই টোকেন সেট করা হয়।
৩. Bitrise Setup
Bitrise হল একটি CI/CD প্ল্যাটফর্ম যা মোবাইল অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য বিশেষভাবে তৈরি। এটি অ্যাপ্লিকেশন বিল্ড, টেস্ট এবং ডিপ্লয়মেন্ট প্রক্রিয়া অটোমেট করার জন্য সহজ ইন্টিগ্রেশন সরবরাহ করে।
৩.১ Bitrise Setup
- Bitrise অ্যাকাউন্ট তৈরি করুন এবং আপনার GitHub রিপোজিটরি সংযুক্ত করুন।
- Bitrise Workflow কনফিগার করার জন্য Bitrise.yml ফাইল তৈরি করুন বা Bitrise এর ওয়েব ইন্টারফেস ব্যবহার করে কনফিগারেশন করুন।
format_version: '10'
default_workflow:
steps:
- activate-ssh-key@4: {}
- git::https://github.com/bitrise-io/steps-xcode-archive.git@2:
inputs:
- xcode_scheme: "YourScheme"
- xcode_project_path: "YourProject.xcodeproj"
- script@1:
inputs:
- content: |
#!/bin/bash
echo "Running tests"
npm install
npm run test
- deploy-to-bitrise-io@1:
inputs:
- is_compress: 'false'
এখানে:
- steps: কয়েকটি ধাপ যুক্ত করা হয়েছে যেমন SSH কী অ্যাক্টিভেশন, Xcode অ্যাপ বিল্ড, টেস্ট রান এবং ডিপ্লয়মেন্ট।
- script: এখানে
npm installএবংnpm run testরান হচ্ছে।
৩.২ Bitrise Workflow
Bitrise ড্যাশবোর্ডে গিয়ে আপনি ওয়র্কফ্লো কনফিগারেশন করতে পারেন। সেখানে আপনি বিল্ড স্টেপ, টেস্ট স্টেপ, ডিপ্লয়মেন্ট স্টেপ নির্ধারণ করতে পারবেন।
সারাংশ
- GitHub Actions: GitHub রিপোজিটরি থেকে সরাসরি CI/CD কাজ করে, YAML ফাইলে নির্দিষ্ট করে টেস্ট, বিল্ড, এবং ডিপ্লয়মেন্ট প্রক্রিয়া পরিচালনা করা হয়।
- Travis CI: ওপেন সোর্স CI/CD প্ল্যাটফর্ম যা GitHub রিপোজিটরি সংযুক্ত করে।
.travis.ymlফাইলের মাধ্যমে টেস্ট এবং ডিপ্লয়মেন্ট কনফিগার করা হয়। - Bitrise: বিশেষভাবে মোবাইল অ্যাপ ডেভেলপমেন্টের জন্য ডিজাইন করা CI/CD প্ল্যাটফর্ম, যা Xcode এবং Android Studio এর জন্য উপযোগী।
এই টুলগুলো ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের CI/CD প্রক্রিয়া অটোমেট করতে পারেন, এবং এটি ডেভেলপমেন্ট ও ডিপ্লয়মেন্ট প্রক্রিয়া অনেক দ্রুত ও কার্যকরী করে তোলে।
Read more